In some communications networks, different transmission conditions may be available for transmitting data across the network. Such transmission conditions could include transmission rate, modulation method, and transmit frequency band, to name a few. An example of one such type of network is the class of networks that operate according to the IEEE 802.11 standards. These networks are wireless local area networks (WLAN) and are commonly known as wi-fi networks.
There are currently six different 802.11 standards defining operation of wi-fi networks. A network operating according to the 802.11g standard may operate according to 12 different data rates (ranging from 1 Mbit/s to 54 Mbit/s) and using three different modulation techniques (including orthogonal frequency division multiplexing (OFDM), complementary code keying (CCK) and differential binary or quadrature phase shift keying (DBPSK/DQPSK) together with direct-sequence spread-spectrum (DSSS)). Typically, a specific modulation technique is used when transmitting at one of a group of data rates. So, for example, OFDM may be used for data rates of 6, 9, 12, 18, 24, 36, 48 and 54 Mbit/s, CCK for data rates of 5.5 and 11 Mbit/s and DBPSK/DQPSK+DSSS for data rates of 1 and 2 Mbit/s.
Wi-fi networks tend to be subjected to different models of interference from wired networks. For example, devices operating in a wi-fi network that uses a certain transmit band may be subject to interference from other devices using that band. An example is a wi-fi network that uses the 2.4 GHz range. Such a network will tend to be subject to interference from other devices operating in this range, which include Bluetooth devices, cordless telephones and microwave ovens. In addition, wireless networks tend to be subject to interference from physical objects located in the transmission path.
Interference results in transmitted signals being received with varying degrees of success by a receiving device, ranging from receiving the data with a few errors to not receiving the data at all. In a typical wi-fi network, data that is successfully received by a receiving device may be acknowledged so that the transmitting device knows that the data has been successfully received. Data may be deemed to have been successfully received if it is received with no errors or if it is received with few enough errors that the receiving device is able to correct those errors using an error correction technique. A transmitting device may retransmit a data packet if it does not receive an acknowledgement confirming that the data packet was successfully received within a predetermined time of transmitting that packet. This retransmission process may be repeated a predetermined number of times before the transmission is deemed a failure.
According to current rate adaptation algorithms for wi-fi networks, poor transmission quality at a given data rate typically causes the data rate to be reduced (provided that there is a lower data rate available). However, a lower data rate is not always beneficial. For example, transmitting a data packet at a lower data rate takes longer and thus the transmission is more likely to be affected by interference. Also, lowering the data rate can cause a different modulation technique to be used, which may be less reliable. For example, CCK tends to be less reliable than OFDM.
One rate selection method that does not automatically drop the data rate if the transmission quality at the given data rate is poor is known as SampleRate. SampleRate chooses the bit rate it predicts will provide the most throughput based on estimates of the expected per-packet transmission time at each data rate. According to this algorithm, data packets may be periodically sent at data rates other than the current data rate so as to estimate when another data rate may provide a better performance. However, this method has the disadvantage that the throughput estimated for one of the available data rates may be adversely affected by interference of short duration, which then renders a potentially advantageous data rate unlikely to be used until its throughput is re-estimated. This method also requires estimated throughputs to be stored for each of available data rates.